package controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller /* Spring va a reconocer esta clase como un controller */
/* El path general de esta clase, va a ser localhost/service/test por el momento (el service viene del web.xml) */
@RequestMapping("/ejemplo") 
public class TestResource {
	
	/* RequestMapping, value es el path (en este caso, seria localhost/test/get) 
	 * Tambien recibo un parametro por url. Tiene que estar entre llaves */
	@RequestMapping(value="/get/{algo}", method=RequestMethod.GET)
	/* El responseBody siempre es requerido, por mas que sea void (sino el cliente se queda esperando la respuesta)
	 * El nombre del metodo no importa
	 * El parámetro de la url se lo anota como @PathVariable y tiene que tener el mismo nombre que le asigne ({algo}) */
	public @ResponseBody String teDigoAlgo(@PathVariable String algo){
		System.out.println(algo);
		return "metodo GET: " + algo;
	}
	
	@RequestMapping(value="/post", method=RequestMethod.POST)
	/* El parametro que recibo por ajax solo puede ser un objeto (si necesitas pasar una lista, crea un dto) */
	public @ResponseBody String dameAlgo(@RequestBody String algo){
		System.out.println(algo);
		return "metodo POST: " + algo;
	}
}